from .control import Control


class TreeItem(Control):
    '''
    树形控件条目操作
    '''

    def collapse(self):
        '''
        节点折叠
        '''
        self.control.Collapse

    def expand(self):
        '''
        节点展开
        '''
        self.control.Expand

    def collapse_all(self):
        '''
        全部折叠
        '''
        self.control.CollapseAll

    def expand_all(self):
        '''
        全部展开
        '''
        self.control.ExpandAll

    def select(self):
        '''
        节点选择
        '''
        self.control.Select

    def is_selected(self):
        '''
        判断节点是否选中

        :Returns:
            返回True表示选中，反之则是未选中
        '''
        return self.control.IsSelected

    def is_checked(self):
        '''
        判断节点是否选择

        :Returns:
            返回True表示选择，反之则是未选择
        '''
        return self.control.IsChecked

    def text(self):
        '''
        获取节点文本

        :Returns:
            返回节点文本
        '''
        return self.control.Text

    def is_expanded(self):
        '''
        判断节点是否展开

        :Returns:
            返回True表示展开，反之则是未展开
        '''
        return self.control.IsExpanded

    def get_immediate_items_text(self):
        '''
        获取直接子节点文本集合

        :Returns:
            返回直接子节点文本集合
        '''
        return self.control.GetImmediateItemsText

    def get_immediate_selected_items_text(self):
        '''
        获取选中的直接子节点文本集合

        :Returns:
            返回选中的直接子节点文本集合
        '''
        return self.control.GetImmediateSelectedItemsText

    def get_descendant_items_text(self):
        '''
        获取子节点和孙子节点文本集合

        :Returns:
            返回子节点和孙子节点文本集合
        '''
        return self.control.GetDescendantItemsText

    def get_descendant_selected_items_text(self):
        '''
        获取选中的子节点和孙子节点文本集合

        :Returns:
            返回选中的子节点和孙子节点文本集合
        '''
        return self.control.GetDescendantSelectedItemsText
